package com.ydlclass.loadbalance;

import com.ydlclass.annotation.SPI;
import com.ydlclass.message.YrpcMessage;

import java.net.InetSocketAddress;
import java.util.List;

/**
 * @author it楠老师
 * @createTime 2023-03-09
 */
@SPI
public interface LoadBalancer {
    /**
     * 提供多种负载均衡策略
     *
     * @param serviceInetSocketAddress 当前处于健康状态的服务列表
     * @return 命中的服务地址
     */
    InetSocketAddress selectServiceAddress(List<InetSocketAddress> serviceInetSocketAddress, YrpcMessage yrpcMessage);
}
